From: Keir Fraser Date: Fri, 7 May 2010 08:31:21 +0000 (+0100) Subject: xl: Add "xl domname" command, a clone of "xm domname". X-Git-Tag: archive/raspbian/4.8.0-1+rpi1~1^2~12223 X-Git-Url: https://dgit.raspbian.org/%22http:/www.example.com/cgi/%22https:/%22bookmarks://%22/%22http:/www.example.com/cgi/%22https:/%22bookmarks:/%22?a=commitdiff_plain;h=526bdf67f5f25ec75fc5655b9aaebb77f4c2e97b;p=xen.git xl: Add "xl domname" command, a clone of "xm domname". Signed-off-by: Yang Hongyang --- diff --git a/tools/libxl/xl_cmdimpl.c b/tools/libxl/xl_cmdimpl.c index f3a4342ec3..c8212f4b40 100644 --- a/tools/libxl/xl_cmdimpl.c +++ b/tools/libxl/xl_cmdimpl.c @@ -1240,6 +1240,9 @@ void help(char *command) } else if (!strcmp(command, "domid")) { printf("Usage: xl domid \n\n"); printf("Convert a domain name to domain id.\n"); + } else if (!strcmp(command, "domname")) { + printf("Usage: xl domname \n\n"); + printf("Convert a domain id to domain name.\n"); } } @@ -2997,3 +3000,43 @@ int main_domid(int argc, char **argv) exit(0); } + +int main_domname(int argc, char **argv) +{ + int opt; + char *domname = NULL; + char *endptr = NULL; + + while ((opt = getopt(argc, argv, "h")) != -1) { + switch (opt) { + case 'h': + help("domname"); + exit(0); + default: + fprintf(stderr, "option `%c' not supported.\n", opt); + break; + } + } + + if (!argv[optind]) { + fprintf(stderr, "Must specify a domain id.\n\n"); + help("domname"); + exit(1); + } + domid = strtol(argv[optind], &endptr, 10); + if (domid == 0 && !strcmp(endptr, argv[optind])) { + /*no digits at all*/ + fprintf(stderr, "Invalid domain id.\n\n"); + exit(1); + } + + domname = libxl_domid_to_name(&ctx, domid); + if (!domname) { + fprintf(stderr, "Can't get domain name of domain id '%d', maybe this domain does not exist.\n", domid); + exit(1); + } + + printf("%s\n", domname); + + exit(0); +} diff --git a/tools/libxl/xl_cmdimpl.h b/tools/libxl/xl_cmdimpl.h index 6fbcf45a61..46d3823f00 100644 --- a/tools/libxl/xl_cmdimpl.h +++ b/tools/libxl/xl_cmdimpl.h @@ -36,5 +36,6 @@ int main_vcpuset(int argc, char **argv); int main_memset(int argc, char **argv); int main_sched_credit(int argc, char **argv); int main_domid(int argc, char **argv); +int main_domname(int argc, char **argv); void help(char *command); diff --git a/tools/libxl/xl_cmdtable.c b/tools/libxl/xl_cmdtable.c index e15db0ddd3..b72c9cf4bc 100644 --- a/tools/libxl/xl_cmdtable.c +++ b/tools/libxl/xl_cmdtable.c @@ -37,6 +37,7 @@ struct cmd_spec cmd_table[] = { { "info", &main_info, "get information about Xen host" }, { "sched-credit", &main_sched_credit, "get/set credit scheduler parameters" }, { "domid", &main_domid, "convert a domain name to domain id"}, + { "domname", &main_domname, "convert a domain id to domain name"}, }; int cmdtable_len = sizeof(cmd_table)/sizeof(struct cmd_spec);